4.3.2 创建和初始化

Go语言中有很多种方法可以创建并初始化映射,可以使用内置的 make 函数(如代码清单4-45所示),也可以使用映射字面量。

代码清单4-45 使用 make 声明映射

// 创建一个映射,键的类型是string,值的类型是int
dict := make(map[string]int)
// 创建一个映射,键和值的类型都是string
// 使用两个键值对初始化映射
dict := map[string]string{"Red": "#da1337", "Orange": "#e95a22"}

创建映射时,更常用的方法是使用映射字面量。映射的初始长度会根据初始化时指定的键值对的数量来确定。

映射的键可以是任何值。这个值的类型可以是内置的类型,也可以是结构类型,只要这个值可以使用 == 运算符做比较。切片、函数以及包含切片的结构类型这些类型由于具有引用语义,不能作为映射的键,使用这些类型会造成编译错误,如代码清单4-46所示。

代码清单4-46 使用映射字面量声明空映射

// 创建一个映射,使用字符串切片作为映射的键
dict := map[[]string]int{}
Compiler Exception:
invalid map key type []string

没有任何理由阻止用户使用切片作为映射的值,如代码清单4-47所示。这个在使用一个映射键对应一组数据时,会非常有用。

代码清单4-47 声明一个存储字符串切片的映射

// 创建一个映射,使用字符串切片作为值
dict := map[int][]string{}

results matching ""

    No results matching ""